package main

import (
	"fmt"
	"math"
)
/*
Excel表列名称
给定一个正整数，返回它在 Excel 表中相对应的列名称。
例如，
    1 -> A
    2 -> B
    3 -> C
    ...
    26 -> Z
    27 -> AA
    28 -> AB
    ...
示例 1:
输入: 1
输出: "A"
示例 2:
输入: 28
输出: "AB"
 */
func convertToTitle(n int) string {
	result := ""
	for n > 0 {
		m := n % 26
		if m == 0 {
			m = 26
			n -= 1
		}
		n = n / 26
		result = string(m+64)+result
	}
	return result
}
/*
Excel表列序号
给定一个Excel表格中的列名称，返回其相应的列序号。
例如，
    A -> 1
    B -> 2
    C -> 3
    ...
    Z -> 26
    AA -> 27
    AB -> 28
    ...
示例 1:
输入: "A"
输出: 1
示例 2:
输入: "AB"
输出: 28
 */

func titleToNumber(columnTitle string) int {
	var res float64 = 0
	for i := 0; i < len(columnTitle); i ++ {
		res += math.Pow(26, float64(len(columnTitle) - 1 - i)) * float64(int(columnTitle[i]) - 64)
	}
	return int(res)
}

func main() {
	fmt.Println(titleToNumber("BA"))
}
